package br.com.trumah.dao.impl;

import java.util.List;

import org.hibernate.Session;
import org.hibernate.Transaction;

import br.com.trumah.dao.interfaces.EstadoDAO;
import br.com.trumah.model.Endereco;
import br.com.trumah.model.Estado;
import br.com.trumah.utils.HibernateUtil;

public class EstadoDAOImpl implements EstadoDAO {

	@Override
	public void salvar(Estado estado) {
		Session session = HibernateUtil.getSessionFactory().openSession();
		Transaction t = session.beginTransaction();
		session.save(estado);
		t.commit();
	}

	@Override
	public Estado obterEstado(long id) {

		Session session = HibernateUtil.getSessionFactory().openSession();
		return (Estado) session.load(Estado.class, id);
		
	}

	@SuppressWarnings("unchecked")
	@Override
	public List<Estado> listar() {

		Session session = HibernateUtil.getSessionFactory().openSession();
		Transaction t = session.beginTransaction();
		List<Estado> lista = session.createQuery("from Estado").list();
		t.commit();
		return lista;
		
	}

	@Override
	public void remover(Estado estado) {

		Session session = HibernateUtil.getSessionFactory().openSession();
		Transaction t = session.beginTransaction();
		session.delete(estado);
		t.commit();

	}

	@Override
	public void atualizar(Estado estado) {

		Session session = HibernateUtil.getSessionFactory().openSession();
		Transaction t = session.beginTransaction();
		session.update(estado);
		t.commit();

	}
}
